Merge pull request #10352 from daijoubu/patch-1
[inav.git] / docs / development / Building SITL.md
blob33ba7ee3d5cb6c48ce9669a6865a69f5a6279e05
1 ## Building SITL
3 ### Linux and FreeBSD:
4 Almost like normal, ruby, cmake and make are also required.
5 With cmake, the option "-DSITL=ON" must be specified.
7 ```
8 mkdir build_SITL
9 cd build_SITL
10 cmake -DSITL=ON ..
11 make
12 ```
14 ### Windows:
15 Compile under cygwin, then as in Linux.
16 Copy cygwin1.dll into the directory, or include cygwin's /bin/ directory in the environment variable PATH.
18 If the build fails (segfault, possibly out of memory), adding `-DCMAKE_BUILD_TYPE=MinRelSize` to the `cmake` command may help.
20 #### Build manager
22 `ninja` may also be used (parallel builds without `-j $(nproc)`):
24 ```
25 cmake -GNinja -DSITL=ON ..
26 ninja
27 ```
29 ### Compiler requirements
31 * Modern GCC. Must be a *real* GCC, macOS faking it with clang will not work. GCC 10 to GCC 13 are known to work.
32 * Unix sockets networking. Cygwin is required on Windows (vice `winsock`).
33 * Pthreads
35 ## Supported environments
37 * Linux on x86_64, ia-32, Aarch64 (e.g. Rpi4), RISCV64 (e.g. VisionFive2)
38 * Windows on x86_64
39 * FreeBSD (x86_64 at least).